#!/bin/bash

#====================================================================
# 格式化输出
# %d %f %s %c都是格式替代符
# d: Decimal 十进制整数 -- 对应位置参数必须是十进制整数，否则报错！
# f: Float 浮点 -- 对应位置参数必须是数字型，否则报错！默认支持 6 位小数，后面多出的四舍五入
# s: String 字符串 -- 对应位置参数必须是字符串或者字符型，否则报错！
# c: Char 字符 -- 对应位置参数必须是字符串或者字符型，否则报错！
#====================================================================

echo "hello shell" #会自动换行 如果要输出转义字符，需要加-e
printf "hello shell \n" #不会自动换行，可直接输出转义字符

# %-10s 指定列的宽度为10个字符（-表示左对齐，没有则表示右对齐），任何字符都会被显示在10个字符宽的字符内，如果不足则自动以空格填充，超过也会将内容全部显示出来。
# %-4.2f 指格式化为小数，其中.2指保留2位小数。
echo -e "-----------------------"
printf "%-10s %-8s %-4s\n" 姓名 性别 体重kg  
printf "%-10s %-8s %-4.2f\n" 海阳之新 男 62.0689 
printf "%-10s %-8s %-4.2f\n" 东胖 男 15.7897 
printf "%-10s %-8s %-4.2f\n" 康胖 男 10.3540
printf "%-11s %-8s %-4.2f\n" 金三胖 男 80.05
echo -e "-----------------------"

a=100
printf "输出整数:%d \n" $a

str="hello shell" #中间有空格，将作为两个字符串输出
printf "输出字符串:%s \n" $str
printf "输出字符:%c \n" $str #如果是字符串，会截取第一个字符输出

printf "语句后不传值时，默认值为：%s %d \n" # %s-NULL %d-0

name='海阳之新'
name2='欧阳'
printf "hello %s \n" $name $name2 #格式只指定了一个参数，但多出的参数仍然会按照该格式输出









